<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>
        var a = [1, 2, 3];
        // a)这会导致崩溃嘛
        a[10] = 99;
        // 他不会崩溃，JavaScript引擎将使阵列插槽3-9成为“空插槽”
        console.log(a[6]);

        // b) 在这里， a[6] 将输出未定义的值， 但时隙仍为空， 而不是未定
        // 义的。 在某些情况下， 这可能是一 - 个重要的细微差别。 例如， 使用
        // map() 时， map() 的输出中的空插槽将保持为空， 但未定义的插槽
        // 将使用传递给它的函数重映射:
        //     var b = [undefined];
        // b[2] = 1;
        // console.log(b); // (3) [undefined, empty x 1, 1]
        // console.log(b.map(e => 7)); // (3) [7, empty x 1, 7]
    </script>
</body>

</html>